Bitcoin Halving Process Visualization
How Bitcoin’s supply approaches 21 million through programmatic halving
Overview
Bitcoin’s 21 million coin cap is maintained through an elegant mathematical design that combines block rewards and halving. This visualization shows how the supply approaches its maximum through programmatic halving every 210,000 blocks (approximately 4 years).
Cumulative Bitcoin Supply Over Time
Bitcoin’s block reward system creates new bitcoins approximately every 10 minutes, starting at 50 BTC per block in 2009. Every 210,000 blocks (roughly 4 years), this reward cuts in half—from 50 to 25, then 12.5, 6.25, 3.125, and so on—creating a predictable supply schedule. This halving process forms a geometric series that mathematically converges to approximately 21 million BTC, with the supply curve asymptotically approaching but never quite reaching the cap. By around 2140, when the block reward becomes smaller than Bitcoin’s smallest unit (1 satoshi), no new bitcoins will be created, and miners will rely entirely on transaction fees for compensation.
A satoshi is the smallest unit of Bitcoin, named after its pseudonymous creator Satoshi Nakamoto. One satoshi equals 0.00000001 BTC, meaning there are exactly 100 million satoshis in a single bitcoin. This tiny denomination allows for microtransactions and ensures Bitcoin remains divisible and practical even if its value increases dramatically, similar to how a dollar can be divided into 100 cents.
Remaining Bitcoin to be Mined
Y-axis log scale reveals the consistent exponential decay - the remaining supply halves with each halving event.
Block Reward Decay Over Halving
Bitcoin miners receive a fixed number of newly created bitcoins (the “block reward”) for successfully mining each block, which occurs approximately every 10 minutes. This reward started at 50 BTC in 2009 and automatically halves every 210,000 blocks (roughly every 4 years), currently sitting at 3.125 BTC as of 2024. Through this systematic halving process, the total supply of Bitcoin will asymptotically approach but never exceed 21 million coins, with the final bitcoin expected to be mined around the year 2140. Y-axis log scale again reveals the consistent exponential decay.
Bitcoin Halving Schedule
| Halving # | Year | Block Reward | BTC Mined | Cumulative Supply | % of Cap |
|---|---|---|---|---|---|
| 0 | ~2009 | 50.00000000 | 10,500,000.000 | 10,500,000.000 | 50.000000000% |
| 1 | ~2013 | 25.00000000 | 5,250,000.000 | 15,750,000.000 | 75.000000000% |
| 2 | ~2017 | 12.50000000 | 2,625,000.000 | 18,375,000.000 | 87.500000000% |
| 3 | ~2021 | 6.25000000 | 1,312,500.000 | 19,687,500.000 | 93.750000000% |
| 4 | ~2025 | 3.12500000 | 656,250.000 | 20,343,750.000 | 96.875000000% |
| 5 | ~2029 | 1.56250000 | 328,125.000 | 20,671,875.000 | 98.437500000% |
| 6 | ~2033 | 0.78125000 | 164,062.500 | 20,835,937.500 | 99.218750000% |
| 7 | ~2037 | 0.39062500 | 82,031.250 | 20,917,968.750 | 99.609375000% |
| 8 | ~2041 | 0.19531250 | 41,015.625 | 20,958,984.375 | 99.804687500% |
| 9 | ~2045 | 0.09765625 | 20,507.812 | 20,979,492.188 | 99.902343750% |
| 10 | ~2049 | 0.04882812 | 10,253.906 | 20,989,746.094 | 99.951171875% |
| 11 | ~2053 | 0.02441406 | 5,126.953 | 20,994,873.047 | 99.975585938% |
| 12 | ~2057 | 0.01220703 | 2,563.477 | 20,997,436.523 | 99.987792969% |
| 13 | ~2061 | 0.00610352 | 1,281.738 | 20,998,718.262 | 99.993896484% |
| 14 | ~2065 | 0.00305176 | 640.869 | 20,999,359.131 | 99.996948242% |
| 15 | ~2069 | 0.00152588 | 320.435 | 20,999,679.565 | 99.998474121% |
| 16 | ~2073 | 0.00076294 | 160.217 | 20,999,839.783 | 99.999237061% |
| 17 | ~2077 | 0.00038147 | 80.109 | 20,999,919.891 | 99.999618530% |
| 18 | ~2081 | 0.00019073 | 40.054 | 20,999,959.946 | 99.999809265% |
| 19 | ~2085 | 0.00009537 | 20.027 | 20,999,979.973 | 99.999904633% |
| 20 | ~2089 | 0.00004768 | 10.014 | 20,999,989.986 | 99.999952316% |
| 21 | ~2093 | 0.00002384 | 5.007 | 20,999,994.993 | 99.999976158% |
| 22 | ~2097 | 0.00001192 | 2.503 | 20,999,997.497 | 99.999988079% |
| 23 | ~2101 | 0.00000596 | 1.252 | 20,999,998.748 | 99.999994040% |
| 24 | ~2105 | 0.00000298 | 0.626 | 20,999,999.374 | 99.999997020% |
| 25 | ~2109 | 0.00000149 | 0.313 | 20,999,999.687 | 99.999998510% |
| 26 | ~2113 | 0.00000075 | 0.156 | 20,999,999.844 | 99.999999255% |
| 27 | ~2117 | 0.00000037 | 0.078 | 20,999,999.922 | 99.999999627% |
| 28 | ~2121 | 0.00000019 | 0.039 | 20,999,999.961 | 99.999999814% |
| 29 | ~2125 | 0.00000009 | 0.020 | 20,999,999.980 | 99.999999907% |
| 30 | ~2129 | 0.00000005 | 0.010 | 20,999,999.990 | 99.999999953% |
| 31 | ~2133 | 0.00000002 | 0.005 | 20,999,999.995 | 99.999999977% |
| 32 | ~2137 | 0.00000001 | 0.002 | 20,999,999.998 | 99.999999988% |
- Current halving (2024-2028) is halving #4
- By halving #10 (around 2049), 99.9% of all Bitcoin will be mined
- By 2101 (Halving #23), only 1.25 Bitcoin will be available for mining
- Final Bitcoin will be mined around year 2140
Summary Statistics
| Metric | Value |
|---|---|
| First Block Reward | 50 BTC |
| Current Block Reward | 3.125 BTC (as of 2024) |
| Total Halvings Until ~0 | 33 |
| Years to Mine All Bitcoin | ~128.0 years |
| Bitcoin Mined in First 4 Years | 10,500,000 BTC (50% of total) |
| Bitcoin After 10 Halvings | 20,979,492 BTC (99.80% of cap) |
| Estimated Final Supply | 20,999,999.9769 BTC |
The Mathematics
The total supply follows a geometric series:
\[ \text{Total Supply} = \sum_{n=0}^{64} 210{,}000 \times \frac{50}{2^n} \] —
Session Information
Click to view session information
----- numpy 2.3.4 pandas 2.3.3 plotly 6.4.0 session_info v1.0.1 -----
Click to view modules imported as dependencies
anyio NA appnope 0.1.4 arrow 1.4.0 asttokens NA attr 25.4.0 attrs 25.4.0 babel 2.17.0 certifi 2025.11.12 charset_normalizer 3.4.4 comm 0.2.3 cython_runtime NA dateutil 2.9.0.post0 debugpy 1.8.17 decorator 5.2.1 executing 2.2.1 fastjsonschema NA fqdn NA idna 3.11 ipykernel 7.1.0 isoduration NA jedi 0.19.2 jinja2 3.1.6 json5 0.12.1 jsonpointer 3.0.0 jsonschema 4.25.1 jsonschema_specifications NA jupyter_events 0.12.0 jupyter_server 2.17.0 jupyterlab_server 2.28.0 lark 1.3.1 markupsafe 3.0.3 narwhals 2.12.0 nbformat 5.10.4 packaging 25.0 parso 0.8.5 platformdirs 4.5.0 prometheus_client NA prompt_toolkit 3.0.52 psutil 7.1.3 pure_eval 0.2.3 pydev_ipython NA pydevconsole NA pydevd 3.2.3 pydevd_file_utils NA pydevd_plugins NA pydevd_tracing NA pygments 2.19.2 pythonjsonlogger NA pytz 2025.2 referencing NA requests 2.32.5 rfc3339_validator 0.1.4 rfc3986_validator 0.1.1 rfc3987_syntax NA rpds NA send2trash NA six 1.17.0 sniffio 1.3.1 stack_data 0.6.3 tornado 6.5.2 traitlets 5.14.3 typing_extensions NA uri_template NA urllib3 2.5.0 wcwidth 0.2.14 webcolors NA websocket 1.9.0 yaml 6.0.3 zmq 27.1.0
----- IPython 9.7.0 jupyter_client 8.6.3 jupyter_core 5.9.1 jupyterlab 4.4.10 notebook 7.4.7 ----- Python 3.14.0 (v3.14.0:ebf955df7a8, Oct 7 2025, 08:20:14) [Clang 16.0.0 (clang-1600.0.26.6)] macOS-15.3.1-arm64-arm-64bit-Mach-O ----- Session information updated at 2026-01-16 13:34